import { Module, forwardRef } from "@nestjs/common";
import { RolesService } from "./roles.service";
import { RolesController } from "./roles.controller";
import { TypeOrmModule } from "@nestjs/typeorm";
import { Roles } from "./roles.entity";
import { LogsModule } from "../logs/logs.module";

/**
 * 角色模块 (RolesModule)
 *
 * 负责角色管理相关的功能模块
 * 包含角色的CRUD操作、权限管理等功能
 */
@Module({
  /**
   * 导入其他模块
   * - TypeOrmModule.forFeature([Roles]): 注册Roles实体的Repository
   * - LogsModule: 导入日志模块，用于记录操作日志
   */
  imports: [TypeOrmModule.forFeature([Roles]), forwardRef(() => LogsModule)],

  /**
   * 模块内的服务提供者
   * RolesService: 角色业务逻辑服务
   */
  providers: [RolesService],

  /**
   * 模块内的控制器
   * RolesController: 处理角色相关的HTTP请求
   */
  controllers: [RolesController],

  /**
   * 导出服务供其他模块使用
   * 导出RolesService以便其他模块可以注入使用
   */
  exports: [RolesService],
})
export class RolesModule {}
